print([x*x for x in range(10)])
# 如果列表元素可以按照某种算法推算出来，那我们是否可以在循环的过程中不断推算出后续的元素呢？这样就不必创建完整的list，从而节省大量的空间。在Python中，这种一边循环一边计算的机制，称为生成器：generator。
#  要创建一个generator，有很多种方法。第一种方法很简单，只要把一个列表生成式的[]改成()，就创建了一个generator：
g=(x*x for x in range(10))
print(g)
# next()可以一个一个打印generator的下一个返回值
print(next(g))
print(next(g))
print(next(g))

# 直接使用循环比较方便
for y in (x*x for x in range(10)):
    print(y)